As of 4.32, it appears the geometric correction is tabled for X,Y indices only, not full 3-D (a Z correction is tabled for each XY point, but is assumed to be the same offset for all Z levels - that would work fine for a short-stroke Z axis that was reasonably straight). I think you could probably modify Kinematics.cpp to perform full volumetric correction, but it would not be trivial. In 3-D you are talking about measuring a lot of points if the error is random for each point so that you need a full 3-D table lookup.
I would guess that with most machines with nominally orthogonal X,Y and Z axes, you could measure the error of each axis separately, then the overall correction would be the sum of the errors for each axis. To put it another way, there would be an independent Y and Z error offset function that depends only on X, and the offset functions would be independent of the current Y and Z positions. Similarly for the other two axis permutations.
If the above assumption is true, then maybe you could lay a reference straight edge along the X axis, then use a touch probe to measure the offsets in the Y and Z directions. Then do the same for the Y and Z axes. That would give enough information to correct the entire machine volume.
The assumption may not be true if the machine has complex kinematics (like Stuart platform designs) or if the axes interact (e.g. the weight of the head at different ends of the axis has an effect on the other axes). In the latter case, I would think that measurements of the straight edge at the 4 extremes of the other 2 axes would be sufficient. Sounds like an interesting problem, anyway. Good luck.